package com.qf.zhijia.service.impl;

import com.qf.zhijia.mapper.CartMapper;
import com.qf.zhijia.mapper.ProductMapper;
import com.qf.zhijia.pojo.Cart;
import com.qf.zhijia.pojo.Product;
import com.qf.zhijia.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.awt.*;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author Canaan
 * @version V1.0
 * @data 2020/09/05
 **/
@Service
public class CartServiceImpl implements CartService {

    @Autowired
    CartMapper cartMapper;

    @Autowired
    ProductMapper productMapper;



    /**
     * 查询购物车所有商品
     * @param uId
     * @return
     */
    @Override
    public List<Cart> findAll(Integer uId) {
        return cartMapper.findAll(uId);
    }

    /**
     * 删除购物车
     * @param cId
     */
    @Override
    public void deleteCartByCId(Integer cId) {
        cartMapper.deleteCartByCId(cId);
    }

    /**
     * 根据cid去对购物车进行增加和删除
     * @param cId
     * @param cNum
     * @param pPrice
     */
    @Override
    public void updateCartByCid(String cId, String cNum, String pPrice) {

        //将cNum和pPrice转换为BigDecimal类型
        BigDecimal num = new BigDecimal(cNum);
        BigDecimal price = new BigDecimal(pPrice);

        //进行运算
        BigDecimal bigDecimal = num.multiply(price);
        cartMapper.updateCartByCid(cId,cNum,bigDecimal);
    }


    //创造购物车
    @Override
    public void creatCart(Integer uId, Integer pId) {
        Cart cart=cartMapper.hasCart(uId,pId);

        if (cart != null){
            //已添加过购物车，只需修改
            //2.存在修改数量和小计
            cart.setCNum(cart.getCNum()+1);//至少增加一个
            cartMapper.updateCart(cart);

        }else {
            Product product = productMapper.selectById(pId);//根据pid查找商品的信息
            //创造一个新的购物车
            cart=new Cart();
            cart.setCNum(1);//设置购物车数量
            cart.setPId(pId);//进行解析
//            cart.setProduct();//设置购物车信息
            cart.setUId(uId);

            cartMapper.insertCart(cart);//添加购物车
        }
    }

}
